Docker-Compose安装mysql并且配置表名忽略大小写配置

docker-compose.yml 配置

test-mysql57.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#mkdir -p /data/test-mysql57/{conf,data,logs,mysql}
#docker-compose -f test-mysql57.yml up -d
#docker-compose.yml 配置文件如下
version: "2"

services:
test-mysql57:
image: mysql:5.7
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
volumes:
- /data/test-mysql57/conf:/etc/mysql
- /data/test-mysql57/logs:/var/log/mysql
- /data/test-mysql57/data:/var/lib/mysql
- /data/test-mysql57/conf/my.cnf:/etc/mysql/my.cnf
environment:
- TZ=Asia/Shanghai
- LANG=C.UTF-8
- MYSQL_ROOT_PASSWORD=Bty@1024Test
restart: always
container_name: test-mysql57
networks:
net:
ipv4_address: 172.100.0.2
networks:
net:
external: true

若没有networks配置,此处可忽略

1
2
3
4
5
6
     networks:
net:
ipv4_address: 172.100.0.2
networks:
net:
external: true

my.cnf 配置

在/data/test-mysql57/conf目录新建文件夹mysql;
mysql文件夹下添加文件my.cnf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

[mysqld]
user=mysql # MySQL启动用户
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
character-set-server=utf8 # 设置mysql服务端默认字符集
pid-file = /var/run/mysqld/mysqld.pid # pid文件所在目录
socket = /var/run/mysqld/mysqld.sock # 用于本地连接的socket套接字
datadir = /var/lib/mysql # 数据文件存放的目录
lower_case_table_names=1 ######################## 此处关键表名忽略大小写
#log-error = /var/log/mysql/error.log
#bind-address = 127.0.0.1 # MySQL绑定IP
expire_logs_days=7 # 定义清除过期日志的时间(这里设置为7天)
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 定义mysql应该支持的sql语法,数据校验等!

# 允许最大连接数
max_connections=200

# ================= ↓↓↓ mysql主从同步配置start ↓↓↓ =================
# 同一局域网内注意要唯一
#server-id=3310
# 开启二进制日志功能
#log-bin=mysql-bin
# ================= ↑↑↑ mysql主从同步配置end ↑↑↑ =================

[client]
default-character-set=utf8 # 设置mysql客户端默认字符集

启动容器

在yml文件同级目录,执行命令:

1
docker-compose -f test-mysql57.yml up -d

继开 wechat
欢迎加我的微信,共同交流技术